package com.yourenbang.lingyun.transaction.web.domain.po;

import com.yourenbang.lingyun.core.util.StringUtils;
import com.yourenbang.lingyun.core.util.json.ToJSON;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
public class FundAccountWithdrawPayment implements Serializable, ToJSON {

    public FundAccountWithdrawPayment() {
    }

    public FundAccountWithdrawPayment(Short platNo) {
        this.platNo = platNo;
    }

    /**
     * 第三方请求http状态 200 请求成功
     */
    public static final String THIRDREQUESTSTATUS_SUCC = "200";
    /**
     * 第三方请求http状态 500 服务器错误
     */
    public static final String THIRDREQUESTSTATUS_ERROR = "500";
    /**
     * 汇积天下
     */
    public static final String PAY_GETWAY_HJTX = "HJTX";


    private Integer fundAccountWithdrawPaymentId;

    private Integer fundAccountChangePlanId;

    /**
     * 第三方交易的sn号
     */
    private String orderSn;

    private Integer fundAccountId;

    /**
     * 真实姓名
     */
    private String userName;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 证件号码
     */
    private String idNumber;

    /**
     * 提现金额
     */
    private BigDecimal amount;

    /**
     * 到账金额
     */
    private BigDecimal inAmount;

    /**
     * 手续费
     */
    private BigDecimal fee;

    /**
     * 付款状态 -2000:支付失败 -1000：支付记录无效 1000:初始状态，未支付 2000：调用代付接口成功，但支付结果未确定 3000:支付成功
     */
    private Integer withdrawStatus;

    /**
     * WECHAT 微信支付 ALIPAY 支付宝 UNIONPAY 拉卡拉 LINGGONGBAO 汇智税通
     */
    private String payGetway;

    /**
     * 2023/12/1 从哪个钱包提现,和资金toAccountType对应
     */
    private String withdrawType;

    /**
     * 支付账号标示
     */
    private String payChannelKey;

    /**
     * 第三方交易订单号
     */
    private String thirdOrderId;

    /**
     * 第三方账户（卡号）
     */
    private String thirdAccount;

    /**
     * 第三方请求http状态 200 请求成功 404 请求不存在 500 服务器错误 504 请求超时
     */
    private String thirdRequestStatus;

    /**
     * 交易请求描述
     */
    private String thirdRequestDesc;

    /**
     * 第三方交易状态
     */
    private String thirdPayStatus;

    /**
     * 第三方交易状态描述
     */
    private String thirdPayStatusDesc;

    /**
     * 最后一次交易请求时间
     */
    private LocalDateTime requestDate;

    /**
     * 交易成功时间
     */
    private LocalDateTime successDate;

    /**
     * 结果查询发起时间
     */
    private LocalDateTime thirdQueryTime;

    /**
     * 结果查询次数
     */
    private Integer thirdQueryCount;

    /**
     * 支付通道id
     */
    private Integer payChannelId;

    /**
     * 审核状态 0：拒绝 10：通过
     */
    private Short checkStatus;

    /**
     * 审核时间
     */
    private LocalDateTime checkTime;

    private String remark;

    /**
     * 错误信息
     */
    private String errors;

    /**
     * 上下文
     */
    private String context;

    /**
     * -1 删除 1 正常
     */
    private Byte isDel;

    private LocalDateTime createTime;

    private LocalDateTime updateTime;

    /**
     *   批次号 20220812
     */
    private String batchNumber;


    /**
     *   结算方式:10: D0 20:T1
     */
    private Short settleType;

    /****** 非数据库字段 ******/
    private Short platNo;

    public void setErrors(String errors) {
        if (StringUtils.length(errors) > 1000) {
            this.errors = StringUtils.left(errors, 1000);
        }
        this.errors = errors;
    }

    public void setContext(String context) {
        if (StringUtils.length(context) > 4000) {
            this.errors = StringUtils.left(context, 4000);
        }
        this.context = context;
    }
}
